<?php
if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Adsent_add extends CI_Controller {

    public $id_phone;

    function __controller() {
        $this -> load -> library('session');
        $this -> id_phone = $this -> session -> userdata('id_phone');
        parent::Controller();

    }

    public function index($id = 77) {
        # первый этап при добавлении объявления
        # Выбор региона

        $this -> load -> model('Views_modul', 'views');

        $this -> views -> title = 'Добавить объявление, выберите регион';

        $this -> load -> model('Adsent_modul', 'adsent');

        $data['region'] = $this -> adsent -> region();

        foreach ($data['region'] as $value) {
            if ($value['id'] == $id) {
                $this -> views -> title = 'Добавить объявление, регион ' . $value['name'];
            }
        }

        $data['region_default'] = $id;

        $this -> views -> content = $this -> load -> view('adsent/add_adsent', $data, true);

        $this -> views -> menu = 'search';
        $this -> views -> left = '';

        $this -> views -> pathway = '';
        $this -> views -> head = '';
        $content = $this -> views -> request_view();
        $this -> load -> view('home', $content);
        return;
    }

    public function metro_search() {
        $this -> load -> model('Adsent_modul', 'adsent');

        $value = $this -> input -> post('value');

        if ($value == '7800000000000' || $value == '7700000000000') {
            // выбираем метро

        }
        $data['box'] = '';
        $json['who'] = 'content';
        $json['html'] = $this -> load -> view('adsent/box/region', $data, true);
        echo json_encode($json);
    }

    /**
     * Запрос базы регионов при смене региона
     *
     *
     * @return array $json список регионов
     *
     */
    public function changregion() {
        $this -> load -> model('Adsent_modul', 'adsent');
        $data['region'] = $this -> adsent -> region();
        $json['who'] = 'reload_region';
        $json['html'] = $this -> load -> view('adsent/box/region', $data, true);
        echo json_encode($json);
    }

    /**
     * Запрос метро
     *
     *
     * @return array $json список регионов
     *
     */
    public function metro() {

        $this -> load -> model('Adsent_modul', 'adsent');

        $city = $this -> input -> post('city');

        if ($city == '7700000000000') {
            $data['metro'] = $this -> adsent -> metro(1);
        }
        if ($city == '7800000000000') {
            $data['metro'] = $this -> adsent -> metro(2);
        }

        $json['who'] = 'metro_check';
        $html = $this -> load -> view('adsent/add/box/metro/msk', $data, true);

        #			$html = $this -> load -> view('adsent/add/box/metro/spb', '', true);
        $json['html'] = $html;

        echo json_encode($json);
    }

    /**
     * Запрос метро
     *
     *
     * @return array $json список регионов
     *
     */
    public function metrosearch() {

        $city = $this -> input -> post('city');

        $json['who'] = 'metro_search';

        $json['city'] = $city;

        switch ($city) {
            case '7700000000000' :
                $html = $this -> load -> view('adsent/add/box/metro/msk', '', true);
                break;
            case '7800000000000' :
                $html = $this -> load -> view('adsent/add/box/metro/spb', '', true);
                break;
            default :
                $html = '';
                break;
        }

        $json['html'] = $html;

        echo json_encode($json);
    }

    /**
     * Поиск улицы в заданом городе
     * По сути функция принимает код города и название города из 3 букв и ищет улицу в общей базе
     *
     * @param POST(char)  $street название улицы
     * @param POST(int)  $code код города
     *
     * @return array $json
     *
     */
    public function street() {
        #   Запрашиваются все улицы
        $this -> load -> model('Adsent_modul', 'adsent');

        $code = $this -> input -> post('code');
        # москва    7700000000000
        # spb    7700000000000

        //получаем улицу
        $street = $this -> input -> post('street');
        $street = substr($street, 0, 10);

        if (mb_strlen($street) < 3) {
            $region['who'] = 'mes';
            $region['text'] = 'название Улицы слишком короткое, не менее 3 символов';
            echo json_encode($region);

            return;
        }

        if ($code == '7700000000000' || $code == '7800000000000') {

            $data['street'] = $this -> adsent -> capital($street, $code);
            #       $data['street'] = $this -> adsent -> street($street, $code);
        } else {
            $data['street'] = $this -> adsent -> street($street, $code);
        }

        if ($data['street'] == 0) {
            $json['who'] = 'mes';
            $json['text'] = 'Улица не найдена, измените название';
        } else {
            $json['who'] = 'search_street';
            $json['html'] = $this -> load -> view('adsent/box/street', $data, true);
        }

        echo json_encode($json);
        return;
    }

    /**
     * Поиск улицы в заданом городе
     * По сути функция принимает код города и название города из 3 букв и ищет улицу в общей базе
     *
     * @param POST(char)  $street название улицы
     * @param POST(int)  $code код города
     *
     * @return array $json
     *
     */
    public function search_cm() {
        #   Запрашиваются все улицы
        $this -> load -> model('Adsent_modul', 'adsent');

        $code = $this -> input -> post('region');
        # москва    7700000000000
        # spb    7700000000000

        //получаем улицу
        $street = $this -> input -> post('str');
        $street = substr($street, 0, 10);

        if (mb_strlen($street) < 3) {
            $region['who'] = 'mes';
            $region['text'] = 'название Улицы слишком короткое, не менее 3 символов';
            echo json_encode($region);

            return;
        }

        if ($code == '7700000000000' || $code == '7800000000000') {

            $data['street'] = $this -> adsent -> capital($street, $code);
            #       $data['street'] = $this -> adsent -> street($street, $code);
        } else {

            $data['street'] = $this -> adsent -> city($street, $code);

            #	$data['street'] = $this -> adsent -> street($street, $code);
        }

        if ($data['street'] == 0) {
            $json['who'] = 'mes';
            $json['text'] = 'Улица не найдена, измените название';
        } else {

            $json['who'] = 'search_street_sm';
            $json['html'] = $this -> load -> view('adsent/box/street_sm', $data, true);

        }

        echo json_encode($json);
        return;
    }

    /**
     * Поиск города по коду региона
     * По сути функция принимает код региона и по первым буквам города ищет город
     * Отдаёт ссписок городов
     *
     * @param POST(char)  $city название  региона
     * @param POST(int)  $code код региона
     *
     * @return array $json
     *
     */
    public function city() {

        #   Запрашиваются все улицы
        $this -> load -> model('Adsent_modul', 'adsent');
        $code = $this -> input -> post('code');

        // получаем город
        $city = $this -> input -> post('city');
        $city = substr($city, 0, 10);

        if (mb_strlen($city) < 3) {
            $json['who'] = 'mes';
            $json['text'] = 'название города слишком короткое, не менее 3 символов';
            echo json_encode($json);

            return;
        }

        $data['city'] = $this -> adsent -> city($city, $code);

        if ($data['city'] == 0) {
            $json['who'] = 'mes';
            $json['text'] = 'Город не определён';
        } else {
            $json['who'] = 'search_city';
            $json['html'] = $this -> load -> view('adsent/box/city', $data, true);
        }

        echo json_encode($json);
    }

    /**
     * Поиск дома.
     * поиск дома, через код улицы. К коду улицы привязвны все дома.
     *
     * @param POST(char)  $home одна буква из номера дома
     * @param POST(int)  $code код улицы
     *
     * @return array $json
     *
     */
    public function home() {
        $home_obj = array();
        #   Запрашиваются все дома
        $this -> load -> model('Adsent_modul', 'adsent');

        $home = $this -> input -> post('home');
        $code = $this -> input -> post('code');

        if (strlen($code) != 17) {
            $json['who'] = 'mes';
            $json['text'] = 'Не выбрана улица';
            echo json_encode($json);
            return;
        }

        if (strlen($home) < 1 || strlen($home) > 3) {
            $json['who'] = 'mes';
            $json['text'] = 'Не указан номер дома';
            echo json_encode($json);
            return;
        }

        if (substr($code, 0, 11) == '77000000000' || substr($code, 0, 13) == '78000000000') {

            $t = $this -> adsent -> capital_home($home, $code);
        } else {
            $t = $this -> adsent -> home($home, $code);
        }

        #capital_home

        if ($t == 0) {
            $json['who'] = 'mes';
            $json['text'] = 'Дом не найден';
            echo json_encode($json);
            return;
        }

        $data['long'] = explode(",", $t['long']);

        foreach ($data['long'] as $value) {

            if (substr($code, 0, 11) == '77000000000' || substr($code, 0, 13) == '78000000000') {

                $data['home'][] = $value;

            } else {
                if (preg_match("/$home/", $value)) {
                    $data['home'][] = $value;
                }
            }

        }

        if (substr($code, 0, 11) == '77000000000' || substr($code, 0, 13) == '78000000000') { 
            $t = $this -> adsent -> capital_home($home, $code);
        } else {
            $t = $this -> adsent -> home($home, $code);
        } 
        $json['who'] = 'search_home';
        $json['html'] = $this -> load -> view('adsent/box/home', $data, true);

        echo json_encode($json);
    }

    /**
     *
     * Сдать в Аренду комнату,квартиру
     * Запрос страницы пользователяпри добавлении объявления.
     *
     * @param int $id  регион в базе
     *
     * @return view возвращаем отображение страницы
     *
     */
    public function rent_flat($id = 1) {

        # Аренда квартиры или комнаты
        $data['metro'] = '';
        $this -> load -> model('Adsent_modul', 'adsent');
        $data['region_id'] = $this -> adsent -> region($id);

        $this -> load -> model('Views_modul', 'views');

        $this -> views -> title = 'Аренда квартиры или комнаты в ' . $data['region_id']['name'];

        if ($id == 77) {
            $data['metro'] = $this -> adsent -> metro(1);

        }
        if ($id == 78) {
            $data['metro'] = $this -> adsent -> metro(2);
        }

        $this -> views -> content = $this -> load -> view('adsent/add/rent/flat', $data, true);

        $this -> views -> menu = 'search';
        $this -> views -> left = '';
        $this -> views -> pathway = '';

        $this -> views -> head = '';
        $content = $this -> views -> request_view();
        $this -> load -> view('home', $content);
        return;
    }

    /**
     *
     * Продать комнату,квартиру
     * Запрос страницы пользователяпри добавлении объявления.
     *
     * @param int $id  регион в базе
     *
     * @return view возвращаем отображение страницы
     *
     */
    public function sale_flat($id = 1) {
         
        
        # Продажа квартиры или комнаты
        $data['metro'] = '';
        $this -> load -> model('Adsent_modul', 'adsent');
        $data['region_id'] = $this -> adsent -> region($id);

        $this -> load -> model('Views_modul', 'views');

        $this -> views -> title = 'Продажа квартир и комнат в ' . $data['region_id']['name'];
        if ($id == 77) {
            $data['metro'] = $this -> adsent -> metro(1);
            
        }
        
        
        if ($id == 78) {
            $data['metro'] = $this -> adsent -> metro(2);
        }

        $this -> views -> content = $this -> load -> view('adsent/add/sale/flat', $data, true);
      
      
 
        $this -> views -> menu = 'search';
        $this -> views -> left = '';
        $this -> views -> pathway = '';

        $this -> views -> head = '';
        $content = $this -> views -> request_view();
        $this -> load -> view('home', $content);
        return;
    }

    /**
     *
     * Сдать в Аренду дом, дачу, коттедж, танхаус
     * Запрос страницы пользователяпри добавлении объявления.
     *
     * @param int $id  регион в базе
     *
     * @return view возвращаем отображение страницы
     *
     */
    public function rent_suburbian($id = 1) {
        # Аренда квартиры или комнаты
        $data['metro'] = '';
        $this -> load -> model('Adsent_modul', 'adsent');
        $data['region_id'] = $this -> adsent -> region($id);

        $this -> load -> model('Views_modul', 'views');

        $this -> views -> title = 'Аренда дома, дачи, коттеджа, таунхауса в ' . $data['region_id']['name'];

        if ($id == 77) {
            $data['metro'] = $this -> adsent -> metro(1);
        }
        if ($id == 78) {
            $data['metro'] = $this -> adsent -> metro(2);
        } 

        $this -> views -> content = $this -> load -> view('adsent/add/rent/suburbian', $data, true);

        $this -> views -> menu = 'search';
        $this -> views -> left = '';
        $this -> views -> pathway = '';

        $this -> views -> head = '';
        $content = $this -> views -> request_view();
        $this -> load -> view('home', $content);

        return;
    }

    /**
     *
     * Сдать в Аренду коммерческая недвижимость
     * Запрос страницы пользователяпри добавлении объявления.
     *
     * @param int $id  регион в базе
     *
     * @return view возвращаем отображение страницы
     *
     */
    public function rent_office($id = 1) {
        # Аренда квартиры или комнаты
        $data['metro'] = '';
        $this -> load -> model('Adsent_modul', 'adsent');
        $data['region_id'] = $this -> adsent -> region($id);

        $this -> load -> model('Views_modul', 'views');

        $this -> views -> title = 'Аренда офисов, коммерческой недвижимости и нежелых помещений ' . $data['region_id']['name'];
        
        
        if ($id == 77) {
            $data['metro'] = $this -> adsent -> metro(1);
        }
        if ($id == 78) {
            $data['metro'] = $this -> adsent -> metro(2);
        }
		
		
        $this -> views -> content = $this -> load -> view('adsent/add/rent/office', $data, true);
 
        $this -> views -> menu = 'search';
        $this -> views -> left = '';
        $this -> views -> pathway = '';

        $this -> views -> head = '';
        $content = $this -> views -> request_view();
        $this -> load -> view('home', $content);
        return;
    }

    /**
     *
     * Продать дом, дачу, коттедж, танхаус
     * Запрос страницы пользователя при добавлении объявления.
     *
     * @param int $id  регион в базе
     *
     * @return view возвращаем отображение страницы
     *
     */

    public function sale_suburbian($id = 1) {
        # Продажа квартиры или комнаты
        $data['metro'] = '';
        $this -> load -> model('Adsent_modul', 'adsent');
        $data['region_id'] = $this -> adsent -> region($id);
        $this -> load -> model('Views_modul', 'views');
        
		
        if ($id == 77) {
            $data['metro'] = $this -> adsent -> metro(1);
        }
		 
        if ($id == 78) {
            $data['metro'] = $this -> adsent -> metro(2);
        }
        $this -> views -> title = 'Продажа  дома, дачи, коттеджа, таунхауса  в ' . $data['region_id']['name'];

        $this -> views -> content = $this -> load -> view('adsent/add/sale/suburbian', $data, true);

        $this -> views -> menu = 'search';
        $this -> views -> left = '';
        $this -> views -> pathway = '';

        $this -> views -> head = '';
        $content = $this -> views -> request_view();
        $this -> load -> view('home', $content);
        return;
    }

    /**
     *
     * Продажа коммерческой недвижимости
     * Запрос страницы пользователяпри добавлении объявления.
     *
     * @param int $id  регион в базе
     *
     * @return view возвращаем отображение страницы
     *
     */
    public function sale_office($id = 1) {
        # Аренда квартиры или комнаты
        $data['metro'] = '';
        $this -> load -> model('Adsent_modul', 'adsent');
        $data['region_id'] = $this -> adsent -> region($id);

        $this -> load -> model('Views_modul', 'views');

        if ($id == 77) {
            $data['metro'] = $this -> adsent -> metro(1);
        }
        if ($id == 78) {
            $data['metro'] = $this -> adsent -> metro(2);
        }

        $this -> views -> title = 'Продажа офисов, коммерческой недвижимости и нежелых помещений   ' . $data['region_id']['name'];

        $this -> views -> content = $this -> load -> view('adsent/add/sale/office', $data, true);

        $this -> views -> menu = 'search';
        $this -> views -> left = '';
        $this -> views -> pathway = '';

        $this -> views -> head = '
			  
		<script src="http://api-maps.yandex.ru/1.1/index.xml?key=ADvWGFABAAAASwkMTwIAsHoMAnDWW80CWMZnXrEB0hgKksQAAAAAAAAAAABBWwFnq2ESo-cr7ggavsWSyhVomg==" type="text/javascript"></script>
    
    
    <link rel="stylesheet" media="screen" href="/css/search.css" type="text/css" />
        <link rel="stylesheet" media="screen" href="/css/adsent.css" type="text/css" /> 
        <script type="text/javascript" src="/js/adsent.js"></script>';
        $content = $this -> views -> request_view();
        $this -> load -> view('home', $content);
        return;
    }

    /**
     * отображаем контект для загрузки фотографий
     *
     */
    public function foto() {

        $method = $this -> input -> post('method');
        $data['id'] = $this -> input -> post('id');
        $data['type'] = $this -> input -> post('type');
        $html['data'] = $data;

        # Аренда квартиры или комнаты
        $this -> load -> model('Adsent_modul', 'adsent');
        $this -> load -> model('Views_modul', 'views');
        $this -> views -> title = 'Добавление фотографии';

        $this -> views -> content = $this -> load -> view('adsent/add/foto', $html, true);

        $this -> views -> menu = 'search';
        $this -> views -> left = '';
        $this -> views -> pathway = '';

        $this -> views -> head = '';
        $content = $this -> views -> request_view();

        #	if($method == 'ajax'){

        $ajax['html'] = $this -> load -> view('adsent/add/box/foto_box', $data, TRUE);
        $ajax['who'] = 'content';
        $ajax['box'] = 'add_obj';

        echo json_encode($ajax);

        #	}else{
        #    $this -> load -> view('home', $content);
        ##	}
        return;
    }

    /**
     * Загрузка фотографий на сервер
     *
     */
    public function foto_save() {

        $adsent = $this -> input -> post('id');
        $type = $this -> input -> post('type');
        // Вы можете также установить параметры, вызвав функцию инициализации. Используйте её, если класс загружается автоматически:
        # Аренда квартиры или комнаты
        $this -> load -> model('Adsent_modul', 'adsent');
        $fil = $_FILES['images']['tmp_name'];
        foreach ($fil as $key => $value) {
            # print_r($_FILES);
            # [name] => Снимок-1.png [type] => image/png [tmp_name] => /tmp/phpsNw6Hk [error] => 0 [size] => 1385709 )
            if (isset($_FILES['images']['name']["$key"])) {
                $img['name'] = $_FILES['images']['name']["$key"];
                $img['type'] = $_FILES['images']['type']["$key"];
                $img['error'] = $_FILES['images']['error']["$key"];
                $img['size'] = $_FILES['images']['size']["$key"];
                $img['tmp_name'] = $_FILES['images']['tmp_name']["$key"];
                $file = $this -> do_upload($img);
                if ($file != false) {

                    $this -> adsent -> foto($adsent, $file . '.jpg', $type);
                }
            }
        }

        $json = '{"templer":"http","url":"adsent/add/ok","param":"id=' . $adsent . '"}';
        $this -> jsOnResponse($json);
        return;
    }

    /**
     * метод, подгружается, когда объявление добавлена
     * Правила
     *
     */
    public function ok() {
        $adsent = $this -> input -> post('id');
        $ajax['html'] = $this -> load -> view('adsent/add/ok', '', TRUE);
        $ajax['who'] = 'content';
        $ajax['box'] = 'add_obj';
        echo json_encode($ajax);
    }

    /**
     * Модуль по настройкам загрузки фотографий на сервер
     *
     */

    function do_upload($fil) {
        # Сохранение нового изображения на сервер

        $data = array( array(540, 419), array(800, 622), );
        $folder = 'adsent/';

        $this -> load -> model('Imglib_modul', 'imglib');

        if ($fil['error'] == 0) {
            $img = $this -> imglib -> resize($fil, $data, $folder, '223', '221', '207');
            return $img;
        }

        return false;
    }

    /*
     function do_upload($fil) {
     # Сохранение нового изображения на сервер

     $data = array( array(50, 50), array(460, 360), );
     $folder = 'adsent/';

     $this -> load -> model('Imglib_modul', 'imglib');

     if ($fil['error'] == 0) {
     $img = $this -> imglib -> resize($fil, $data, $folder, '223', '221', '207');
     return $img;
     }

     return false;
     }
     */

    public function jsOnResponse($obj) {
        echo "<script type='text/javascript'>
         window.parent.onResponse('" . $obj . "'); 
         </script>";
        return;
    }

}
